package com.swak.rabbit.handler;

import java.util.concurrent.CompletableFuture;

/**
 * 发送消息接口
 * 
 * @author lifeng
 * @date 2021/03/30
 */
public interface MessagePublisher {

    /**
     * 发送消息
     * 
     * @Title: post
     * @param event
     * @author lifeng
     * @date 2019-11-22 10:45:36
     */
    <T> void post(T event);

    /**
     * 发送消息
     * 
     * @Title: post
     * @param event
     * @author lifeng
     * @date 2019-11-22 10:45:36
     */
    <T> void post(String queue, T event);

    /**
     * 发送消息
     * 
     * @Title: submit
     * @param event
     * @author lifeng
     * @date 2019-11-22 10:45:36
     */
    <T> CompletableFuture<Void> submit(T event);

    /**
     * 发送消息
     * 
     * @Title: submit
     * @param event
     * @author lifeng
     * @date 2019-11-22 10:45:36
     */
    <T> CompletableFuture<Void> submit(String queue, T event);
}
